knitr::opts_chunk$set(echo = TRUE)

cmdstanr::set_cmdstan_path(path = "C:/Users/kueng/.cmdstan/cmdstan-2.35.0")

library(tidyverse)
library(R.utils)
library(wbCorr)
library(readxl)
library(kableExtra)
library(brms)
library(bayesplot)
library(see)
library(beepr)
library(DHARMa)
library(digest)



source(file.path('Functions', 'ReportModels.R'))
source(file.path('Functions', 'PrettyTables.R'))
source(file.path('Functions', 'ReportMeasures.R'))
source(file.path('Functions', 'PrepareData.R'))

report_function_hash <- digest::digest(summarize_brms)
system("shutdown /a")
## [1] 1116
# Set options for analysis
use_mi = FALSE
shutdown = FALSE
report_ordinal = FALSE
report_hurdle = TRUE
do_priorsense = FALSE

options(
  dplyr.print_max = 100, 
  brms.backend = 'cmdstan',
  brms.file_refit = ifelse(use_mi, 'never', 'on_change'),
  brms.file_refit = 'on_change',
  #brms.file_refit = 'always',
  error = function() {
    beepr::beep(sound = 5)
    if (shutdown) {
      system("shutdown /s /t 180")
      quit(save = "no", status = 1)
    }
  }
  , es.use_symbols = TRUE
)


####################### Model parameters #######################

iterations = 2000 # 10'000 per chain to achieve 40'000
warmup = 1000

# NO AR!!!
#corstr = 'ar'
#corstr = 'cosy_couple'
#corstr = 'cosy_couple:user'


################################################################

suffix = paste0('_sensitivityOtherCovariates_', as.character(iterations))
df <- openxlsx::read.xlsx(file.path('long.xlsx'))
df_original <- df

df_double <- prepare_data(df, recode_pushing = TRUE, use_mi = use_mi)[[1]]

Constructing scales Re-coding pusing reshaping data (4field) centering data within and between

summary(df_double$pushing)

Min. 1st Qu. Median Mean 3rd Qu. Max. NA’s 0.0000 0.0000 0.0000 0.1635 0.0000 5.0000 241

Modelling

# For indistinguishable Dyads
model_rows_fixed <- c(
    'Intercept', 
    # '-- WITHIN PERSON MAIN EFFECTS --', 
    'persuasion_self_cw', 
    'persuasion_partner_cw', 
    'pressure_self_cw', 
    'pressure_partner_cw', 
    'pushing_self_cw', 
    'pushing_partner_cw', 
    'plan_selfPlan',
    'plan_partnerPlan',
    'day', 
    'weartime_self_cw',
    
    'support_self_cw',
    'support_partner_cw',
    'isWeekendWeekend',
    'got_JITAI_selfJITAIreceived',
    'skilled_supportDaysafterIntervention',
    
    
    # '-- BETWEEN PERSON MAIN EFFECTS',
    'persuasion_self_cb',
    'persuasion_partner_cb',
    'pressure_self_cb',
    'pressure_partner_cb',
    'pushing_self_cb',
    'pushing_partner_cb',
    'weartime_self_cb',
    
    'support_self_cb',
    'support_partner_cb',
    'studyGroupFirst3weeksinterventions',
    'studyGrouplast3weeksinterventions'
  )


model_rows_fixed_ordinal <- c(
  model_rows_fixed[1],
  'Intercept[1]',
  'Intercept[2]',
  'Intercept[3]',
  'Intercept[4]',
  'Intercept[5]',
  model_rows_fixed[2:length(model_rows_fixed)]
)

model_rows_random <- c(
  # '--------------',
  # '-- RANDOM EFFECTS --',
  'sd(Intercept)', 
  'sd(persuasion_self_cw)',
  'sd(persuasion_partner_cw)',
  'sd(pressure_self_cw)',
  'sd(pressure_partner_cw)',
  'sd(pushing_self_cw)',
  'sd(pushing_partner_cw)',
  # '-- CORRELATION STRUCTURE -- ', 
  'sigma'
)

model_rows_random_ordinal <- c(model_rows_random,'disc')
# For indistinguishable Dyads
model_rownames_fixed <- c(
    "Intercept", 
    # "-- WITHIN PERSON MAIN EFFECTS --", 
    "Daily persuasion experienced", 
    "Daily persuasion utilized (partner's view)", # OR partner received
    "Daily pressure experienced", 
    "Daily pressure utilized (partner's view)", 
    "Daily pushing experienced", 
    "Daily pushing utilized (partner's view)", 
    'Own actionplan',
    'Partner actionplan',
    "Day", 
    "Daily weartime",
    
    'Daily support received',
    "Daily support provided (partner's view)",
    'Is a Weekend',
    'JITAI received',
    'Days post skilled support intervention',
    
    # "-- BETWEEN PERSON MAIN EFFECTS",
    "Mean persuasion experienced", 
    "Mean persuasion utilized (partner's view)", 
    "Mean pressure experienced", 
    "Mean pressure utilized (partner's view)", 
    "Mean pushing experienced", 
    "Mean pushing utilized (partner's view)", 
    "Mean weartime",
    
    'Mean support received',
    "Mean support provided (partner's view)",
    'Difference study group 2',
    'Difference study group 3'
  )


model_rownames_fixed_ordinal <- c(
  model_rownames_fixed[1],
  'Intercept[1]',
  'Intercept[2]',
  'Intercept[3]',
  'Intercept[4]',
  'Intercept[5]',
  model_rownames_fixed[2:length(model_rownames_fixed)]
)

model_rownames_random <- c(
  # '--------------',
  # '-- RANDOM EFFECTS --',
  'sd(Intercept)', 
  "sd(Daily persuasion experienced)", 
  "sd(Daily persuasion utilized (partner's view))", # OR partner received
  "sd(Daily pressure experienced)", 
  "sd(Daily pressure utilized (partner's view))", 
  "sd(Daily pushing experienced)", 
  "sd(Daily pushing utilized (partner's view))", 
  # '-- CORRELATION STRUCTURE -- ', 
  'sigma'
)

model_rownames_random_ordinal <- c(model_rownames_random,'disc')
rows_to_pack <- list(
  "Within-Person Effects" = c(2,16),
  "Between-Person Effects" = c(17,27),
  "Random Effects" = c(28, 34), 
  "Additional Parameters" = c(35,35)
  )


rows_to_pack_ordinal <- list(
  "Intercepts" = c(1,6),
  "Within-Person Effects" = c(2+5,16+5),
  "Between-Person Effects" = c(17+5,27+5),
  "Random Effects" = c(28+5, 34+5), 
  "Additional Parameters" = c(35+5,35+6)
  )

HURDLE MODELS

# For indistinguishable Dyads
model_rows_fixed_hu <- c(
    'Intercept', 
    'hu_Intercept',
    # '-- WITHIN PERSON MAIN EFFECTS --', 
    'persuasion_self_cw', 
    'persuasion_partner_cw', 
    'pressure_self_cw', 
    'pressure_partner_cw', 
    'pushing_self_cw', 
    'pushing_partner_cw', 
    'plan_selfPlan',
    'plan_partnerPlan',
    'day', 
    'weartime_self_cw',
  
    'support_self_cw',
    'support_partner_cw',
    'isWeekendWeekend',
    'got_JITAI_selfJITAIreceived',
    'skilled_supportDaysafterIntervention',
    
    # '-- BETWEEN PERSON MAIN EFFECTS',
    'persuasion_self_cb',
    'persuasion_partner_cb',
    'pressure_self_cb',
    'pressure_partner_cb',
    'pushing_self_cb',
    'pushing_partner_cb',
    'weartime_self_cb',
    
    'support_self_cb',
    'support_partner_cb',
    'studyGroupFirst3weeksinterventions',
    'studyGrouplast3weeksinterventions',
    
    # HURDLE MODEL
    # '-- WITHIN PERSON MAIN EFFECTS --', 
    'hu_persuasion_self_cw', 
    'hu_persuasion_partner_cw', 
    'hu_pressure_self_cw', 
    'hu_pressure_partner_cw', 
    'hu_pushing_self_cw', 
    'hu_pushing_partner_cw', 
    'hu_plan_selfPlan',
    'hu_plan_partnerPlan',
    'hu_day', 
    'hu_weartime_self_cw',

    'hu_support_self_cw',
    'hu_support_partner_cw',
    'hu_isWeekendWeekend',
    'hu_got_JITAI_selfJITAIreceived',
    'hu_skilled_supportDaysafterIntervention',
    
    # '-- BETWEEN PERSON MAIN EFFECTS',
    'hu_persuasion_self_cb',
    'hu_persuasion_partner_cb',
    'hu_pressure_self_cb',
    'hu_pressure_partner_cb',
    'hu_pushing_self_cb',
    'hu_pushing_partner_cb',
    'hu_weartime_self_cb',
    
    'hu_support_self_cb',
    'hu_support_partner_cb',
    'hu_studyGroupFirst3weeksinterventions',
    'hu_studyGrouplast3weeksinterventions'
    
  )

model_rows_fixed_hu_ordinal <- c(
  model_rows_fixed_hu[1:2],
  'Intercept[1]',
  'Intercept[2]',
  'Intercept[3]',
  'Intercept[4]',
  'Intercept[5]',
  model_rows_fixed_hu[3:length(model_rows_fixed_hu)]
)


model_rows_random_hu <- c(
  # '--------------',
  # '-- RANDOM EFFECTS --',
  'sd(Intercept)', 
  'sd(hu_Intercept)',
  'sd(persuasion_self_cw)',
  'sd(persuasion_partner_cw)',
  'sd(pressure_self_cw)',
  'sd(pressure_partner_cw)',
  'sd(pushing_self_cw)',
  'sd(pushing_partner_cw)',
  # HURDLE
  'sd(hu_persuasion_self_cw)',
  'sd(hu_persuasion_partner_cw)',
  'sd(hu_pressure_self_cw)',
  'sd(hu_pressure_partner_cw)',
  'sd(hu_pushing_self_cw)',
  'sd(hu_pushing_partner_cw)',
  # '-- CORRELATION STRUCTURE -- ', 
  'sigma'
)

model_rows_random_hu_ordinal <- c(model_rows_random_hu,'disc')
# For indistinguishable Dyads
model_rownames_fixed_hu <- c(
    "Intercept", 
    "Hurdle Intercept",
    # "-- WITHIN PERSON MAIN EFFECTS --", 
    "Daily persuasion experienced", 
    "Daily persuasion utilized (partner's view)", # OR partner received
    "Daily pressure experienced", 
    "Daily pressure utilized (partner's view)", 
    "Daily pushing experienced", 
    "Daily pushing utilized (partner's view)", 
    'Own actionplan',
    'Partner actionplan',
    "Day", 
    "Daily weartime",

    'Daily support received',
    "Daily support provided (partner's view)",
    'Is a Weekend',
    'JITAI received',
    'Days post skilled support intervention',
    
    # "-- BETWEEN PERSON MAIN EFFECTS",
    "Mean persuasion experienced", 
    "Mean persuasion utilized (partner's view)", 
    "Mean pressure experienced", 
    "Mean pressure utilized (partner's view)", 
    "Mean pushing experienced", 
    "Mean pushing utilized (partner's view)", 
    "Mean weartime", 
    
    'Mean support received',
    "Mean support provided (partner's view)",
    'Difference study group 2',
    'Difference study group 3',
    
    # HURDLE
    # "-- WITHIN PERSON MAIN EFFECTS --", 
    "Hu Daily persuasion experienced", 
    "Hu Daily persuasion utilized (partner's view)", # OR partner received
    "Hu Daily pressure experienced", 
    "Hu Daily pressure utilized (partner's view)", 
    "Hu Daily pushing experienced", 
    "Hu Daily pushing utilized (partner's view)", 
    'Hu Own actionplan',
    'Hu Partner actionplan',
    "Hu Day", 
    "Hu Daily weartime",

    'Hu Daily support received',
    "Hu Daily support provided (partner's view)",
    'Hu Is a Weekend',
    'Hu JITAI received',
    'Hu Days post skilled support intervention',
    
    # "-- BETWEEN PERSON MAIN EFFECTS",
    "Hu Mean persuasion experienced", 
    "Hu Mean persuasion utilized (partner's view)", 
    "Hu Mean pressure experienced", 
    "Hu Mean pressure utilized (partner's view)", 
    "Hu Mean pushing experienced", 
    "Hu Mean pushing utilized (partner's view)", 
    "Hu Mean weartime",
    
    'Hu Mean support received',
    "Hu Mean support provided (partner's view)",
    'Hu Difference study group 2',
    'Hu Difference study group 3'
  )



model_rownames_fixed_hu_ordinal <- c(
  model_rownames_fixed_hu[1:2],
  'Intercept[1]',
  'Intercept[2]',
  'Intercept[3]',
  'Intercept[4]',
  'Intercept[5]',
  model_rownames_fixed_hu[3:length(model_rownames_fixed_hu)]
)



model_rownames_random_hu <- c(
  # '--------------',
  # '-- RANDOM EFFECTS --',
  'sd(Intercept)', 
  'sd(Hurdle Intercept)', 
  "sd(Daily persuasion experienced)", 
  "sd(Daily persuasion utilized (partner's view))", # OR partner received
  "sd(Daily pressure experienced)", 
  "sd(Daily pressure utilized (partner's view))", 
  "sd(Daily pushing experienced)", 
  "sd(Daily pushing utilized (partner's view))", 
  
  # Hurdle
  "sd(Hu Daily persuasion experienced)", 
  "sd(Hu Daily persuasion utilized (partner's view))", # OR partner received
  "sd(Hu Daily pressure experienced)", 
  "sd(Hu Daily pressure utilized (partner's view))", 
  "sd(Hu Daily pushing experienced)", 
  "sd(Hu Daily pushing utilized (partner's view))", 
  # '-- CORRELATION STRUCTURE -- ', 
  'sigma'
)

model_rownames_random_hu_ordinal <- c(model_rownames_random_hu,'disc')
rows_to_pack_hu <- list(
  "Conditional Within-Person Effects" = c(3,17),
  "Conditional Between-Person Effects" = c(18,28),
  
  "Hurdle Within-Person Effects" = c(29,43),
  "Hurdle Between-Person Effects" = c(44,54),
  
  "Random Effects" = c(55, 68), 
  "Additional Parameters" = c(69,69)
  )

rows_to_pack_hu_ordinal <- list(
  "Conditional Within-Person Effects" = c(3+5,17+5),
  "Conditional Between-Person Effects" = c(18+5,28+5),
  
  "Hurdle Within-Person Effects" = c(29+5,43+5),
  "Hurdle Between-Person Effects" = c(44+5,54+5),
  
  "Random Effects" = c(55+5, 68+5), 
  "Additional Parameters" = c(69+5,69+6)
  )

Self-Reported MVPA

Hurdle Lognormal Model

formula <- bf(
  pa_sub ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan_self + plan_partner +
    day + 
    
    # Random effects
    (1 + persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID),
  
  hu = ~ persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan_self + plan_partner +
    day + 
    
    # Random effects
    (1 + persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
) 

prior1 <- c(
  brms::set_prior("normal(0, 2.5)", class = "b")
  , brms::set_prior("normal(0, 2)", class = "b", dpar = "hu")
  , brms::set_prior("normal(0, 50)", class = "Intercept") # for non-zero PA
  , brms::set_prior("normal(0.5, 2.5)", class = "Intercept", dpar = 'hu') # hurdle part
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
  , brms::set_prior("student_t(3, 0, 2.5)", class = "sigma", lb = 0)
)

#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = hurdle_lognormal()
#)

#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

pa_sub <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = brms::hurdle_lognormal(), 
  #family = brms::hurdle_negbinomial(), 
  #family = brms::hurdle_poisson(),
  #control = list(adapt_delta = 0.95, max_treedepth = 15),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 42,
  file = file.path("models_cache_brms", paste0("pa_sub_hu_lognormal", suffix))
  #, file_refit = 'always'
)
## Warning: Rows containing NAs were excluded from the model.
pa_sub_digest <- digest::digest(pa_sub)
# summarize with rope range for hurdle part
summary_pa_sub_hurdle <- summarize_brms(
  pa_sub, 
  stats_to_report = c('pd','ROPE'),
  rope_range = c(-0.18, 0.18),
  model_rows_fixed = model_rows_fixed_hu,
  model_rows_random = model_rows_random_hu,
  model_rownames_fixed = model_rownames_fixed_hu,
  model_rownames_random = model_rownames_random_hu,
  exponentiate = T) 
## Warning in summarize_brms(pa_sub, stats_to_report = c("pd", "ROPE"), rope_range
## = c(-0.18, : Coefficients were exponentiated. Double check if this was
## intended.
# rope range for continuous part of the model
rope_factor <- sd(log(pa_sub$data$pa_sub[pa_sub$data$pa_sub > 0]))
rope_range_continuous = c(-0.1 * rope_factor, 0.1 * rope_factor)

summary_pa_sub_continuous <- summarize_brms(
  pa_sub, 
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  rope_range = rope_range_continuous,
  model_rows_fixed = model_rows_fixed_hu,
  model_rows_random = model_rows_random_hu,
  model_rownames_fixed = model_rownames_fixed_hu,
  model_rownames_random = model_rownames_random_hu,
  exponentiate = T) 
## Warning in summarize_brms(pa_sub, stats_to_report = c("CI", "SE", "pd", :
## Coefficients were exponentiated. Double check if this was intended.
# Replace only the ROPE and % in Rope columns for rows with 'Hu'
summary_pa_sub <- summary_pa_sub_continuous

columns_to_replace <- c("ROPE", "inside ROPE")

summary_pa_sub[grepl('Hu', rownames(summary_pa_sub)), columns_to_replace] <- 
  summary_pa_sub_hurdle[grepl('Hu', rownames(summary_pa_sub_hurdle)), columns_to_replace]

# Print the updated dataframe
summary_pa_sub %>%
  print_df(rows_to_pack = rows_to_pack_hu)
exp(Est.) SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercept 31.46*** 3.28 [25.65, 38.61] 1.000 [0.92, 1.08] 0.000 1.001 915 1735
Hurdle Intercept 0.22*** 0.06 [ 0.14, 0.37] 1.000 [0.84, 1.20] 0.000 1.011 855 1904
Conditional Within-Person Effects
Daily persuasion experienced 1.03 0.03 [ 0.97, 1.08] 0.839 [0.92, 1.08] 0.972 1.002 1373 2128
Daily persuasion utilized (partner’s view) 1.03 0.02 [ 0.98, 1.08] 0.873 [0.92, 1.08] 0.983 1.002 2065 2510
Daily pressure experienced 0.91* 0.04 [ 0.82, 1.00] 0.976 [0.92, 1.08] 0.330 1.001 3368 2999
Daily pressure utilized (partner’s view) 0.95 0.04 [ 0.87, 1.03] 0.881 [0.92, 1.08] 0.714 1.001 3103 2555
Daily pushing experienced 0.98 0.03 [ 0.92, 1.04] 0.711 [0.92, 1.08] 0.960 1.001 2724 2633
Daily pushing utilized (partner’s view) 0.96 0.03 [ 0.90, 1.01] 0.929 [0.92, 1.08] 0.877 1.000 3214 2774
Own actionplan 1.36*** 0.07 [ 1.23, 1.48] 1.000 [0.92, 1.08] 0.000 1.000 4492 3290
Partner actionplan 1.09* 0.05 [ 1.01, 1.19] 0.982 [0.92, 1.08] 0.405 1.000 4339 3055
Day 0.95 0.08 [ 0.80, 1.12] 0.734 [0.92, 1.08] 0.549 1.001 2710 2720
Daily weartime NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 1.20*** 0.05 [ 1.12, 1.29] 1.000 [0.92, 1.08] 0.004 1.001 5328 2912
JITAI received 0.94 0.05 [ 0.85, 1.04] 0.898 [0.92, 1.08] 0.611 1.000 4435 3355
Days post skilled support intervention 1.06 0.07 [ 0.94, 1.20] 0.841 [0.92, 1.08] 0.599 1.001 2639 2888
Conditional Between-Person Effects
Mean persuasion experienced 1.07 0.16 [ 0.80, 1.43] 0.673 [0.92, 1.08] 0.353 1.006 816 1548
Mean persuasion utilized (partner’s view) 1.02 0.16 [ 0.76, 1.37] 0.560 [0.92, 1.08] 0.390 1.006 811 1657
Mean pressure experienced 1.15 0.20 [ 0.80, 1.65] 0.788 [0.92, 1.08] 0.250 1.002 1262 2021
Mean pressure utilized (partner’s view) 0.93 0.16 [ 0.66, 1.32] 0.658 [0.92, 1.08] 0.318 1.002 1237 1878
Mean pushing experienced 1.14 0.27 [ 0.72, 1.77] 0.711 [0.92, 1.08] 0.237 1.005 1051 1806
Mean pushing utilized (partner’s view) 1.19 0.27 [ 0.75, 1.86] 0.757 [0.92, 1.08] 0.208 1.006 1072 2052
Mean weartime NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 1.08 0.14 [ 0.82, 1.40] 0.720 [0.92, 1.08] 0.382 1.002 715 1350
Difference study group 3 1.23 0.16 [ 0.95, 1.61] 0.941 [0.92, 1.08] 0.154 1.002 749 1399
Hurdle Within-Person Effects
Hu Daily persuasion experienced 1.59*** 0.11 [ 1.39, 1.84] 1.000 [0.84, 1.20] 0.000 1.001 2143 2542
Hu Daily persuasion utilized (partner’s view) 1.33*** 0.09 [ 1.18, 1.53] 1.000 [0.84, 1.20] 0.048 1.001 2445 2713
Hu Daily pressure experienced 0.96 0.15 [ 0.69, 1.30] 0.603 [0.84, 1.20] 0.738 1.002 2569 2298
Hu Daily pressure utilized (partner’s view) 1.52* 0.30 [ 1.06, 2.41] 0.988 [0.84, 1.20] 0.098 1.002 2954 2103
Hu Daily pushing experienced 0.93 0.14 [ 0.70, 1.29] 0.675 [0.84, 1.20] 0.727 1.002 2287 2318
Hu Daily pushing utilized (partner’s view) 1.28* 0.15 [ 1.02, 1.64] 0.986 [0.84, 1.20] 0.283 1.000 2842 2351
Hu Own actionplan 10.36*** 1.10 [ 8.45, 12.72] 1.000 [0.84, 1.20] 0.000 1.000 4156 3222
Hu Partner actionplan 1.24* 0.12 [ 1.02, 1.50] 0.983 [0.84, 1.20] 0.368 1.000 4355 3457
Hu Day 0.74 0.16 [ 0.51, 1.11] 0.922 [0.84, 1.20] 0.278 1.001 2982 3088
Hu Daily weartime NA NA NA NA NA NA NA NA NA
Hu Daily support received NA NA NA NA NA NA NA NA NA
Hu Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Hu Is a Weekend 1.56*** 0.15 [ 1.29, 1.89] 1.000 [0.84, 1.20] 0.002 1.000 5396 3242
Hu JITAI received 0.49*** 0.06 [ 0.39, 0.63] 1.000 [0.84, 1.20] 0.000 1.001 4978 3324
Hu Days post skilled support intervention 1.28 0.21 [ 0.95, 1.74] 0.946 [0.84, 1.20] 0.344 1.000 2662 2768
Hurdle Between-Person Effects
Hu Mean persuasion experienced 1.44 0.53 [ 0.71, 3.02] 0.848 [0.84, 1.20] 0.232 1.003 746 1427
Hu Mean persuasion utilized (partner’s view) 1.36 0.50 [ 0.67, 2.83] 0.800 [0.84, 1.20] 0.266 1.004 798 1547
Hu Mean pressure experienced 0.38* 0.16 [ 0.16, 0.86] 0.991 [0.84, 1.20] 0.030 1.002 1288 2362
Hu Mean pressure utilized (partner’s view) 0.53 0.23 [ 0.23, 1.24] 0.927 [0.84, 1.20] 0.121 1.003 1129 2344
Hu Mean pushing experienced 1.13 0.61 [ 0.38, 3.53] 0.591 [0.84, 1.20] 0.252 1.005 982 1377
Hu Mean pushing utilized (partner’s view) 1.89 1.07 [ 0.64, 6.01] 0.869 [0.84, 1.20] 0.139 1.003 1001 1478
Hu Mean weartime NA NA NA NA NA NA NA NA NA
Hu Mean support received NA NA NA NA NA NA NA NA NA
Hu Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Hu Difference study group 2 0.79 0.24 [ 0.42, 1.40] 0.784 [0.84, 1.20] 0.348 1.010 782 1436
Hu Difference study group 3 1.07 0.33 [ 0.58, 1.95] 0.581 [0.84, 1.20] 0.428 1.005 815 1321
Random Effects
sd(Intercept) 0.29 0.04 [0.22, 0.40] NA NA NA 1.007 1048 1926
sd(Hurdle Intercept) 0.76 0.11 [0.57, 1.02] NA NA NA 1.002 1060 2217
sd(Daily persuasion experienced) 0.12 0.02 [0.08, 0.17] NA NA NA 1.003 1778 2537
sd(Daily persuasion utilized (partner’s view)) 0.08 0.02 [0.05, 0.13] NA NA NA 1.004 1989 2643
sd(Daily pressure experienced) 0.06 0.05 [0.00, 0.21] NA NA NA 1.002 1715 1654
sd(Daily pressure utilized (partner’s view)) 0.05 0.04 [0.00, 0.17] NA NA NA 1.001 1749 1588
sd(Daily pushing experienced) 0.08 0.04 [0.01, 0.16] NA NA NA 1.007 1143 1056
sd(Daily pushing utilized (partner’s view)) 0.06 0.04 [0.01, 0.13] NA NA NA 1.004 1241 1200
sd(Hu Daily persuasion experienced) 0.20 0.09 [0.03, 0.39] NA NA NA 1.005 1045 1075
sd(Hu Daily persuasion utilized (partner’s view)) 0.19 0.09 [0.02, 0.38] NA NA NA 1.004 1064 1129
sd(Hu Daily pressure experienced) 0.19 0.17 [0.01, 0.67] NA NA NA 1.001 1454 1932
sd(Hu Daily pressure utilized (partner’s view)) 0.24 0.23 [0.01, 0.96] NA NA NA 1.001 1373 1975
sd(Hu Daily pushing experienced) 0.56 0.16 [0.31, 0.99] NA NA NA 1.000 1888 2679
sd(Hu Daily pushing utilized (partner’s view)) 0.24 0.15 [0.02, 0.56] NA NA NA 1.001 1274 1352
Additional Parameters
sigma 0.67 0.01 [0.65, 0.70] NA NA NA 1.001 4484 3031
# Plot continuous part of model

variable <- c(
  '(Intercept)',
  'b_persuasion_self_cw',
  'b_persuasion_partner_cw',
  'b_pressure_self_cw',
  'b_pressure_partner_cw',
  'b_pushing_self_cw',
  'b_pushing_partner_cw'
)


plot(
  bayestestR::p_direction(pa_sub, parameter = variable),
  priors = TRUE
) + theme_bw()

plot(
  bayestestR::rope(
    pa_sub, 
    parameter = variable, 
    range = rope_range_continuous,
    verbose = F,
    ci = 1
  )
) + theme_bw()

# Hurdle part of the model
variable <- c(
  'b_hu_persuasion_self_cw',
  'b_hu_persuasion_partner_cw',
  'b_hu_pressure_self_cw',
  'b_hu_pressure_partner_cw',
  'b_hu_pushing_self_cw',
  'b_hu_pushing_partner_cw'
)

plot(
  bayestestR::p_direction(pa_sub, parameter = variable),
  priors = TRUE
) + theme_bw()

# The rope range for the bernoulli part of the model is -0.18, 0.18
plot(
  bayestestR::rope(pa_sub, parameter = variable, range = c(-0.18, 0.18), ci = 1),
  verbose = FALSE
) + theme_bw()
## Possible multicollinearity between b_persuasion_partner_cb and
##   b_persuasion_self_cb (r = 0.75), b_hu_persuasion_partner_cb and
##   b_hu_persuasion_self_cb (r = 0.75). This might lead to inappropriate
##   results. See 'Details' in '?rope'.

Device Based MVPA

Lognormal Model

formula <- bf(
  pa_obj ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan_self + plan_partner +
    day +  + weartime_self_cw + weartime_self_cb +
    
    # Random effects
    (persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
)



prior1 <- c(
  brms::set_prior("normal(0, 2.5)", class = "b")
  , brms::set_prior("normal(0, 50)", class = "Intercept") 
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
  , brms::set_prior("student_t(3, 0, 2.5)", class = "sigma", lb = 0)
)


#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = lognormal()
#  )

#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

pa_obj_log <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = lognormal(),
  #control = list(adapt_delta = 0.95),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 7777,
  file = file.path("models_cache_brms", paste0("pa_obj_log_gaussian", suffix))
)
## Warning: Rows containing NAs were excluded from the model.
pa_obj_log_digest <- digest::digest(pa_obj_log)
# rope range for lognormal model
rope_factor <- sd(log(pa_obj_log$data$pa_obj))
rope_range_log = c(-0.1 * rope_factor, 0.1 * rope_factor)

summarize_brms(
  pa_obj_log, 
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  rope_range = rope_range_log,
  model_rows_fixed = model_rows_fixed,
  model_rows_random = model_rows_random,
  model_rownames_fixed = model_rownames_fixed,
  model_rownames_random = model_rownames_random,
  exponentiate = T) %>%
  print_df(rows_to_pack = rows_to_pack)
## Warning in summarize_brms(pa_obj_log, stats_to_report = c("CI", "SE", "pd", :
## Coefficients were exponentiated. Double check if this was intended.
exp(Est.) SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercept 109.55*** 9.71 [91.68, 130.72] 1.000 [0.94, 1.07] 0.000 1.001 1452 2390
Within-Person Effects
Daily persuasion experienced 1.02 0.02 [ 0.99, 1.06] 0.944 [0.94, 1.07] 0.995 1.000 3450 3452
Daily persuasion utilized (partner’s view) 1.02 0.02 [ 0.98, 1.05] 0.838 [0.94, 1.07] 0.999 1.001 4825 3486
Daily pressure experienced 0.95 0.03 [ 0.89, 1.01] 0.942 [0.94, 1.07] 0.638 1.000 5681 3056
Daily pressure utilized (partner’s view) 0.98 0.03 [ 0.92, 1.05] 0.691 [0.94, 1.07] 0.918 1.001 6699 2774
Daily pushing experienced 1.01 0.02 [ 0.96, 1.06] 0.708 [0.94, 1.07] 0.981 1.000 5059 2837
Daily pushing utilized (partner’s view) 1.00 0.02 [ 0.96, 1.04] 0.546 [0.94, 1.07] 0.997 1.000 6609 3235
Own actionplan 1.07** 0.03 [ 1.02, 1.13] 0.998 [0.94, 1.07] 0.425 1.000 7953 3216
Partner actionplan 1.05* 0.03 [ 1.00, 1.11] 0.982 [0.94, 1.07] 0.671 1.001 7730 3056
Day 0.94 0.04 [ 0.85, 1.03] 0.906 [0.94, 1.07] 0.512 1.000 6129 2847
Daily weartime 1.00*** 0.00 [ 1.00, 1.00] 1.000 [0.94, 1.07] 1.000 1.002 4103 2581
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 1.07** 0.02 [ 1.02, 1.12] 0.998 [0.94, 1.07] 0.474 1.004 10012 2664
JITAI received 0.93* 0.03 [ 0.88, 0.99] 0.992 [0.94, 1.07] 0.397 1.001 8762 3263
Days post skilled support intervention 1.05 0.04 [ 0.98, 1.13] 0.916 [0.94, 1.07] 0.664 1.000 6855 3257
Between-Person Effects
Mean persuasion experienced 1.10 0.15 [ 0.83, 1.48] 0.750 [0.94, 1.07] 0.291 1.002 1198 1840
Mean persuasion utilized (partner’s view) 0.98 0.14 [ 0.72, 1.32] 0.569 [0.94, 1.07] 0.334 1.002 1170 1775
Mean pressure experienced 0.99 0.15 [ 0.74, 1.33] 0.517 [0.94, 1.07] 0.335 1.000 1605 2429
Mean pressure utilized (partner’s view) 0.99 0.14 [ 0.74, 1.32] 0.529 [0.94, 1.07] 0.361 1.001 1519 2217
Mean pushing experienced 0.95 0.20 [ 0.62, 1.46] 0.595 [0.94, 1.07] 0.232 1.001 1547 2237
Mean pushing utilized (partner’s view) 1.21 0.25 [ 0.80, 1.86] 0.809 [0.94, 1.07] 0.163 1.002 1568 2141
Mean weartime 1.00 0.00 [ 1.00, 1.00] 0.924 [0.94, 1.07] 1.000 1.001 5628 3291
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 0.93 0.11 [ 0.72, 1.19] 0.728 [0.94, 1.07] 0.338 1.002 1398 1988
Difference study group 3 1.03 0.13 [ 0.80, 1.33] 0.590 [0.94, 1.07] 0.382 1.001 1437 2218
Random Effects
sd(Intercept) 0.30 0.04 [0.23, 0.40] NA NA NA 1.001 1342 2557
sd(Daily persuasion experienced) 0.05 0.01 [0.02, 0.08] NA NA NA 1.002 2166 1704
sd(Daily persuasion utilized (partner’s view)) 0.05 0.02 [0.02, 0.09] NA NA NA 1.000 2088 1955
sd(Daily pressure experienced) 0.04 0.03 [0.00, 0.13] NA NA NA 1.000 2341 2458
sd(Daily pressure utilized (partner’s view)) 0.03 0.03 [0.00, 0.11] NA NA NA 1.000 3199 2183
sd(Daily pushing experienced) 0.07 0.04 [0.01, 0.15] NA NA NA 1.002 1139 1473
sd(Daily pushing utilized (partner’s view)) 0.03 0.02 [0.00, 0.09] NA NA NA 1.001 1913 2403
Additional Parameters
sigma 0.57 0.01 [0.56, 0.59] NA NA NA 1.001 8570 2869
plot(
  bayestestR::p_direction(pa_obj_log),
  priors = TRUE
) + 
  coord_cartesian(xlim = c(-3, 3)) +
  theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in is.na(e1) | is.na(e2): longer object length is not a multiple of
## shorter object length

plot(
  bayestestR::rope(pa_obj_log, range = rope_range_log, ci = 1)
) + theme_bw()
## Possible multicollinearity between b_persuasion_partner_cb and
##   b_persuasion_self_cb (r = 0.89), b_pressure_self_cb and
##   b_persuasion_self_cb (r = 0.75), b_pressure_partner_cb and
##   b_persuasion_self_cb (r = 0.75), b_pressure_self_cb and
##   b_persuasion_partner_cb (r = 0.73), b_pressure_partner_cb and
##   b_persuasion_partner_cb (r = 0.78), b_pushing_partner_cb and
##   b_pushing_self_cb (r = 0.84). This might lead to inappropriate results.
##   See 'Details' in '?rope'.

# Nothing significant, no plots

Affect

Gaussian

formula <- bf(
  aff ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan_self + plan_partner +
    day + 
    
    # Random effects
    (persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
)


prior1 <- c(
  brms::set_prior("normal(0, 5)", class = "b")
  ,brms::set_prior("normal(0, 20)", class = "Intercept", lb=1, ub=6)
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
  , brms::set_prior("student_t(3, 0, 2.5)", class = "sigma", lb = 0)
)

#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = gaussian()
#  )

#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

mood_gauss <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = gaussian(),
  #control = list(adapt_delta = 0.95, max_treedepth = 15),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 7777,
  file = file.path("models_cache_brms", paste0("mood_gauss", suffix))
)
## Warning: Rows containing NAs were excluded from the model.
mood_gauss_digest <- digest::digest(mood_gauss)
summarize_brms(
  mood_gauss, 
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  model_rows_fixed = model_rows_fixed,
  model_rows_random = model_rows_random,
  model_rownames_fixed = model_rownames_fixed,
  model_rownames_random = model_rownames_random,
  exponentiate = F) %>%
  print_df(rows_to_pack = rows_to_pack)
Est. SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercept 3.57*** 0.16 [ 3.26, 3.88] 1.000 [-0.11, 0.11] 0.000 1.007 672 1522
Within-Person Effects
Daily persuasion experienced 0.00 0.02 [-0.04, 0.04] 0.501 [-0.11, 0.11] 1.000 1.002 3594 2684
Daily persuasion utilized (partner’s view) 0.02 0.02 [-0.03, 0.06] 0.771 [-0.11, 0.11] 1.000 1.001 4016 3413
Daily pressure experienced -0.03 0.05 [-0.14, 0.07] 0.718 [-0.11, 0.11] 0.939 1.000 3886 2675
Daily pressure utilized (partner’s view) -0.03 0.05 [-0.15, 0.08] 0.696 [-0.11, 0.11] 0.930 1.001 2784 2457
Daily pushing experienced 0.00 0.03 [-0.06, 0.06] 0.551 [-0.11, 0.11] 0.999 1.001 4774 3392
Daily pushing utilized (partner’s view) 0.07 0.03 [ 0.00, 0.13] 0.972 [-0.11, 0.11] 0.923 1.000 3560 2391
Own actionplan 0.12** 0.04 [ 0.04, 0.20] 0.997 [-0.11, 0.11] 0.470 1.000 5319 2959
Partner actionplan -0.02 0.04 [-0.10, 0.05] 0.704 [-0.11, 0.11] 0.989 1.002 5045 2895
Day 0.24*** 0.07 [ 0.09, 0.39] 1.000 [-0.11, 0.11] 0.045 1.000 4343 3271
Daily weartime NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 0.15*** 0.03 [ 0.08, 0.22] 1.000 [-0.11, 0.11] 0.154 1.001 7693 2798
JITAI received -0.10* 0.05 [-0.19, -0.01] 0.983 [-0.11, 0.11] 0.620 1.001 5771 2859
Days post skilled support intervention 0.04 0.06 [-0.07, 0.15] 0.772 [-0.11, 0.11] 0.892 1.000 4240 3319
Between-Person Effects
Mean persuasion experienced 0.36 0.27 [-0.15, 0.90] 0.909 [-0.11, 0.11] 0.133 1.004 632 1198
Mean persuasion utilized (partner’s view) 0.25 0.27 [-0.29, 0.78] 0.819 [-0.11, 0.11] 0.225 1.003 625 1115
Mean pressure experienced -0.27 0.27 [-0.80, 0.26] 0.837 [-0.11, 0.11] 0.203 1.001 774 1636
Mean pressure utilized (partner’s view) -0.27 0.27 [-0.80, 0.25] 0.849 [-0.11, 0.11] 0.200 1.001 756 1371
Mean pushing experienced 0.13 0.39 [-0.60, 0.88] 0.630 [-0.11, 0.11] 0.219 1.004 914 1562
Mean pushing utilized (partner’s view) 0.29 0.39 [-0.46, 1.03] 0.775 [-0.11, 0.11] 0.170 1.004 953 1491
Mean weartime NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 -0.23 0.23 [-0.67, 0.22] 0.837 [-0.11, 0.11] 0.243 1.008 611 1165
Difference study group 3 0.35 0.23 [-0.10, 0.80] 0.941 [-0.11, 0.11] 0.123 1.008 589 1256
Random Effects
sd(Intercept) 0.56 0.07 [0.45, 0.74] NA NA NA 1.002 1196 2226
sd(Daily persuasion experienced) 0.04 0.03 [0.00, 0.10] NA NA NA 1.003 1040 1308
sd(Daily persuasion utilized (partner’s view)) 0.07 0.03 [0.01, 0.13] NA NA NA 1.000 1014 810
sd(Daily pressure experienced) 0.07 0.06 [0.00, 0.25] NA NA NA 1.000 1909 2167
sd(Daily pressure utilized (partner’s view)) 0.08 0.07 [0.00, 0.28] NA NA NA 1.000 1491 1789
sd(Daily pushing experienced) 0.04 0.04 [0.00, 0.13] NA NA NA 1.002 1395 1542
sd(Daily pushing utilized (partner’s view)) 0.06 0.04 [0.00, 0.16] NA NA NA 1.000 1452 1616
Additional Parameters
sigma 0.96 0.01 [0.94, 0.98] NA NA NA 1.005 7579 2776
plot(
  bayestestR::p_direction(mood_gauss),
  priors = TRUE
)  + 
  coord_cartesian(xlim = c(-3, 3)) +
  theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in is.na(e1) | is.na(e2): longer object length is not a multiple of
## shorter object length

plot(
  bayestestR::rope(mood_gauss, ci = 1)
) + theme_bw()
## Possible multicollinearity between b_pressure_self_cb and
##   b_persuasion_self_cb (r = 0.82), b_pressure_partner_cb and
##   b_persuasion_self_cb (r = 0.8), b_pressure_self_cb and
##   b_persuasion_partner_cb (r = 0.79), b_pressure_partner_cb and
##   b_persuasion_partner_cb (r = 0.82), b_pressure_partner_cb and
##   b_pressure_self_cb (r = 0.75), b_pushing_partner_cb and
##   b_pushing_self_cb (r = 0.89). This might lead to inappropriate results.
##   See 'Details' in '?rope'.

conditional_spaghetti(
  mood_gauss, 
  effects = c('pushing_partner_cw'),
  group_var = 'coupleID',
  plot_full_range = TRUE
)

$pushing_partner_cw

Reactance

Ordinal

df_double$reactance_ordinal <- factor(df_double$reactance,
                                      levels = 0:5, 
                                      ordered = TRUE)

formula <- bf(
  reactance_ordinal ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan_self + plan_partner +
    day + 
    
    # Random effects
    (persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
)


prior1 <- c(
  brms::set_prior("normal(0, 2.5)", class = "b")
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
)


#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = cumulative() # HURDLE_CUMULATIVE
#  )


#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

reactance_ordinal <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = brms::cumulative(),
  #control = list(adapt_delta = 0.95),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 7777
  , file = file.path("models_cache_brms", paste0("reactance_ordinal", suffix))
)
## Warning: Rows containing NAs were excluded from the model.
reactance_ordinal_digest <- digest::digest(reactance_ordinal)
summarize_brms(
  reactance_ordinal, 
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  rope_range = c(-0.18, 0.18),
  model_rows_fixed = model_rows_fixed_ordinal,
  model_rows_random = model_rows_random_ordinal,
  model_rownames_fixed = model_rownames_fixed_ordinal,
  model_rownames_random = model_rownames_random_ordinal,
  exponentiate = T) %>%
  print_df(rows_to_pack = rows_to_pack_ordinal)
OR SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercepts
Intercept NA NA NA NA NA NA NA NA NA
Intercept[1] 2.15* 0.84 [ 1.00, 4.67] 0.975 [0.84, 1.20] 0.056 1.000 4322 3334
Intercept[2] 4.67*** 1.84 [ 2.16, 10.45] 1.000 [0.84, 1.20] 0.000 1.000 4545 3423
Intercept[3] 13.11*** 5.34 [ 5.88, 30.36] 1.000 [0.84, 1.20] 0.000 1.000 4798 3455
Intercept[4] 57.74*** 25.84 [ 24.06, 143.02] 1.000 [0.84, 1.20] 0.000 1.000 4742 3232
Intercept[5] 2006.57*** 1390.83 [566.51, 9187.81] 1.000 [0.84, 1.20] 0.000 1.000 6300 3645
Within-Person Effects
Daily persuasion experienced 0.85 0.07 [ 0.71, 1.00] 0.974 [0.84, 1.20] 0.581 1.000 4523 2988
Daily persuasion utilized (partner’s view) 1.02 0.10 [ 0.83, 1.23] 0.590 [0.84, 1.20] 0.924 1.002 3872 2854
Daily pressure experienced 1.84** 0.35 [ 1.16, 2.64] 0.995 [0.84, 1.20] 0.030 1.000 2524 2661
Daily pressure utilized (partner’s view) 1.25 0.28 [ 0.74, 2.06] 0.828 [0.84, 1.20] 0.360 1.000 3045 2595
Daily pushing experienced 1.24 0.14 [ 0.99, 1.57] 0.970 [0.84, 1.20] 0.361 1.001 3582 3112
Daily pushing utilized (partner’s view) 0.96 0.12 [ 0.73, 1.25] 0.623 [0.84, 1.20] 0.807 1.000 3728 2517
Own actionplan 0.83 0.25 [ 0.47, 1.47] 0.731 [0.84, 1.20] 0.384 1.001 4879 3248
Partner actionplan 0.86 0.22 [ 0.52, 1.44] 0.727 [0.84, 1.20] 0.442 1.000 4970 3234
Day 1.65 0.77 [ 0.65, 3.97] 0.861 [0.84, 1.20] 0.177 1.000 3866 3593
Daily weartime NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 0.64* 0.14 [ 0.43, 0.96] 0.984 [0.84, 1.20] 0.093 1.001 6744 3017
JITAI received 1.28 0.33 [ 0.76, 2.19] 0.828 [0.84, 1.20] 0.356 1.001 5004 3120
Days post skilled support intervention 0.81 0.28 [ 0.42, 1.53] 0.729 [0.84, 1.20] 0.336 1.000 3673 3264
Between-Person Effects
Mean persuasion experienced 0.96 0.46 [ 0.38, 2.38] 0.529 [0.84, 1.20] 0.307 1.001 2178 2789
Mean persuasion utilized (partner’s view) 1.26 0.66 [ 0.43, 3.62] 0.667 [0.84, 1.20] 0.234 1.001 2239 2644
Mean pressure experienced 3.62** 1.78 [ 1.37, 9.97] 0.995 [0.84, 1.20] 0.012 1.000 2552 2910
Mean pressure utilized (partner’s view) 1.24 0.65 [ 0.42, 3.63] 0.665 [0.84, 1.20] 0.246 1.001 2223 2609
Mean pushing experienced 1.56 1.08 [ 0.43, 6.64] 0.743 [0.84, 1.20] 0.180 1.001 3044 3067
Mean pushing utilized (partner’s view) 0.10** 0.09 [ 0.02, 0.57] 0.995 [0.84, 1.20] 0.007 1.000 3477 2605
Mean weartime NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 1.15 0.43 [ 0.52, 2.39] 0.635 [0.84, 1.20] 0.342 1.001 3260 3188
Difference study group 3 0.37* 0.15 [ 0.16, 0.87] 0.989 [0.84, 1.20] 0.027 1.002 2723 3112
Random Effects
sd(Intercept) 0.64 0.21 [0.23, 1.10] NA NA NA 1.002 1444 1428
sd(Daily persuasion experienced) 0.17 0.13 [0.01, 0.42] NA NA NA 1.007 715 1583
sd(Daily persuasion utilized (partner’s view)) 0.22 0.14 [0.02, 0.53] NA NA NA 1.002 1222 2092
sd(Daily pressure experienced) 0.57 0.25 [0.07, 1.17] NA NA NA 1.001 1076 889
sd(Daily pressure utilized (partner’s view)) 0.37 0.35 [0.02, 1.47] NA NA NA 1.003 1226 2154
sd(Daily pushing experienced) 0.22 0.14 [0.02, 0.56] NA NA NA 1.004 1137 1248
sd(Daily pushing utilized (partner’s view)) 0.15 0.13 [0.01, 0.61] NA NA NA 1.003 1893 2123
Additional Parameters
sigma NA NA NA NA NA NA NA NA NA
disc 1.00 0.00 [1.00, 1.00] NA NA NA NA NA NA
plot(
  bayestestR::p_direction(reactance_ordinal),
  priors = TRUE
) + 
  coord_cartesian(xlim = c(-6, 6)) +
  theme_bw()

plot(
  bayestestR::rope(reactance_ordinal, range = c(-0.18, 0.18), ci = 1)
) + theme_bw()
## Possible multicollinearity between b_Intercept[4] and b_Intercept[2] (r
##   = 0.86), b_Intercept[4] and b_Intercept[3] (r = 0.9),
##   b_pressure_partner_cb and b_persuasion_partner_cb (r = 0.8). This might
##   lead to inappropriate results. See 'Details' in '?rope'.

conditional_spaghetti(
  reactance_ordinal, 
  effects = c('persuasion_self_cw', 'pressure_self_cw')
  , group_var = 'coupleID'
  #, n_groups = 15
  , plot_full_range = T
)

\(persuasion_self_cw <img src="04_SensitivityOtherCovariates_files/figure-html/report_reactance_ordinal-3.png" width="2400" />\)pressure_self_cw

Binary

introduce_binary_reactance <- function(data) {
  data$is_reactance <- factor(data$reactance > 0, levels = c(FALSE, TRUE), labels = c(0, 1))
  return(data)
}



df_double <- introduce_binary_reactance(df_double)
if (use_mi) {
  for (i in seq_along(implist)) {
    implist[[i]] <- introduce_binary_reactance(implist[[i]])
  }
}


formula <- bf(
  is_reactance ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan_self + plan_partner +
    day + 
    
    # Random effects
    (persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
  )



prior1 <- c(
  brms::set_prior("normal(0, 2.5)", class = "b")
  , brms::set_prior("normal(0, 10)", class = "Intercept", lb=0, ub=5) 
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
)


#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = bernoulli()
#  )



#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

is_reactance <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = brms::bernoulli(),
  #control = list(adapt_delta = 0.95, max_treedepth = 15),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 7777,
  file = file.path("models_cache_brms", paste0("is_reactance", suffix))
  #, file_refit = 'always'
)
## Warning: Rows containing NAs were excluded from the model.
is_reactance_digest <- digest::digest(is_reactance)
summarize_brms(
  is_reactance,
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  model_rows_fixed = model_rows_fixed,
  model_rows_random = model_rows_random,
  model_rownames_fixed = model_rownames_fixed,
  model_rownames_random = model_rownames_random,
  exponentiate = T) %>%
  print_df(rows_to_pack = rows_to_pack)
OR SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercept 0.53 0.25 [0.21, 1.34] 0.909 [0.83, 1.20] 0.131 1.000 2932 3144
Within-Person Effects
Daily persuasion experienced 0.84 0.08 [0.68, 1.02] 0.957 [0.83, 1.20] 0.553 1.001 3228 2373
Daily persuasion utilized (partner’s view) 1.13 0.17 [0.86, 1.55] 0.809 [0.83, 1.20] 0.629 1.000 3126 3188
Daily pressure experienced 1.94* 0.61 [1.05, 4.19] 0.980 [0.83, 1.20] 0.046 1.002 2299 2543
Daily pressure utilized (partner’s view) 1.41 0.58 [0.59, 4.02] 0.803 [0.83, 1.20] 0.232 1.002 2316 2251
Daily pushing experienced 1.37* 0.18 [1.06, 1.85] 0.992 [0.83, 1.20] 0.157 1.001 3313 2883
Daily pushing utilized (partner’s view) 0.93 0.18 [0.63, 1.36] 0.646 [0.83, 1.20] 0.624 1.002 3712 2852
Own actionplan 0.83 0.27 [0.44, 1.59] 0.714 [0.83, 1.20] 0.353 1.001 4341 3151
Partner actionplan 0.83 0.25 [0.47, 1.48] 0.732 [0.83, 1.20] 0.391 1.000 4260 3046
Day 2.10 1.12 [0.77, 5.99] 0.914 [0.83, 1.20] 0.111 1.001 3495 2962
Daily weartime NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 0.63 0.17 [0.36, 1.04] 0.965 [0.83, 1.20] 0.135 1.001 5071 3032
JITAI received 1.42 0.44 [0.75, 2.66] 0.865 [0.83, 1.20] 0.241 1.000 4831 3140
Days post skilled support intervention 0.71 0.28 [0.33, 1.45] 0.816 [0.83, 1.20] 0.258 1.003 3320 3107
Between-Person Effects
Mean persuasion experienced 1.71 1.01 [0.54, 5.95] 0.822 [0.83, 1.20] 0.162 1.001 2135 2563
Mean persuasion utilized (partner’s view) 1.71 1.10 [0.50, 6.84] 0.804 [0.83, 1.20] 0.175 1.001 1785 2775
Mean pressure experienced 18.90** 19.78 [2.46, 178.70] 0.999 [0.83, 1.20] 0.002 1.001 2392 2203
Mean pressure utilized (partner’s view) 2.55 2.78 [0.28, 22.04] 0.811 [0.83, 1.20] 0.086 1.001 2163 2628
Mean pushing experienced 1.07 1.03 [0.15, 7.73] 0.526 [0.83, 1.20] 0.150 1.001 2609 2912
Mean pushing utilized (partner’s view) 0.08* 0.09 [0.01, 0.65] 0.990 [0.83, 1.20] 0.007 1.001 2710 2962
Mean weartime NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 1.20 0.60 [0.44, 3.34] 0.636 [0.83, 1.20] 0.258 1.000 2104 2463
Difference study group 3 0.37 0.21 [0.12, 1.15] 0.957 [0.83, 1.20] 0.052 1.001 2312 2374
Random Effects
sd(Intercept) 1.07 0.27 [0.62, 1.69] NA NA NA 1.002 1319 2236
sd(Daily persuasion experienced) 0.22 0.15 [0.02, 0.53] NA NA NA 1.000 1088 1941
sd(Daily persuasion utilized (partner’s view)) 0.50 0.19 [0.15, 0.94] NA NA NA 1.004 1599 1461
sd(Daily pressure experienced) 1.05 0.57 [0.08, 2.38] NA NA NA 1.010 571 586
sd(Daily pressure utilized (partner’s view)) 0.77 0.65 [0.04, 2.72] NA NA NA 1.003 1303 2124
sd(Daily pushing experienced) 0.26 0.16 [0.02, 0.64] NA NA NA 1.001 1406 1596
sd(Daily pushing utilized (partner’s view)) 0.23 0.20 [0.01, 0.87] NA NA NA 1.001 1655 1507
Additional Parameters
sigma NA NA NA NA NA NA NA NA NA
plot(
  bayestestR::p_direction(is_reactance),
  priors = TRUE
) + 
  coord_cartesian(xlim = c(-6, 6)) +
  theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in is.na(e1) | is.na(e2): longer object length is not a multiple of
## shorter object length

plot(
  bayestestR::rope(is_reactance, ci = 1)
) + theme_bw()

conditional_spaghetti(
  is_reactance, 
  effects = c('pressure_self_cw', 'pushing_self_cw'),
  group_var = 'coupleID',
  plot_full_range = TRUE
)

\(pressure_self_cw <img src="04_SensitivityOtherCovariates_files/figure-html/report_is_reactance-3.png" width="2400" />\)pushing_self_cw

Report All Models

process_model_component <- function(obj) {
  # Convert to string, modify, and evaluate
  name <- deparse(substitute(obj))
  if (report_hurdle) name <- paste0(name, '_hu')
  if (report_ordinal) name <- paste0(name, '_ordinal')
  return(get(name, envir = parent.frame()))
}



all_models <- report_side_by_side(
  pa_sub,
  pa_obj_log,
  mood_gauss,
  reactance_ordinal,
  is_reactance,
  
  stats_to_report = c('CI', 'pd'),
  
  model_rows_random = process_model_component(model_rows_random),
  model_rows_fixed = process_model_component(model_rows_fixed),
  model_rownames_random = process_model_component(model_rownames_random),
  model_rownames_fixed = process_model_component(model_rownames_fixed)
) 

[1] “pa_sub”

## Warning in summarize_brms(model, exponentiate = exponentiate, stats_to_report =
## stats_to_report, : Coefficients were exponentiated. Double check if this was
## intended.

[1] “pa_obj_log”

## Warning in summarize_brms(model, exponentiate = exponentiate, stats_to_report =
## stats_to_report, : Coefficients were exponentiated. Double check if this was
## intended.

[1] “mood_gauss” [1] “reactance_ordinal” [1] “is_reactance”

# pretty printing

summary_all_models <- all_models %>%
  print_df(rows_to_pack = process_model_component(rows_to_pack)) %>%
  add_header_above(
    c(" ", "Subjective MVPA Hurdle Lognormal" = (length(all_models) / 5),  
      "Device-Based MVPA Log (Gaussian)" = (length(all_models) / 5), 
      "Mood Gaussian" = (length(all_models) / 5),
      "Reactance Ordinal" = (length(all_models) / 5),
      "Reactance Dichotome" = (length(all_models) / 5))
  )


export_xlsx(
  summary_all_models, 
  rows_to_pack = process_model_component(rows_to_pack),
  file.path("Output", paste0("AllModels", suffix, ".xlsx")), 
  merge_option = 'header', 
  simplify_2nd_row = TRUE,
  line_above_rows = c(1,2),
  line_below_rows = c(-1)
)
## 
## Attaching package: 'rvest'
## The following object is masked from 'package:readr':
## 
##     guess_encoding
print(summary_all_models)
Subjective MVPA Hurdle Lognormal
Device-Based MVPA Log (Gaussian)
Mood Gaussian
Reactance Ordinal
Reactance Dichotome
exp(Est.) pa_sub 95% CI pa_sub pd pa_sub exp(Est.) pa_obj_log 95% CI pa_obj_log pd pa_obj_log Est. mood_gauss 95% CI mood_gauss pd mood_gauss OR reactance_ordinal 95% CI reactance_ordinal pd reactance_ordinal OR is_reactance 95% CI is_reactance pd is_reactance
Intercept 31.46*** [25.65, 38.61] 1.000 109.55*** [91.68, 130.72] 1.000 3.57*** [ 3.26, 3.88] 1.000 NA NA NA 0.53 [0.21, 1.34] 0.909
Hurdle Intercept 0.22*** [ 0.14, 0.37] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Conditional Within-Person Effects
Daily persuasion experienced 1.03 [ 0.97, 1.08] 0.839 1.02 [ 0.99, 1.06] 0.944 0.00 [-0.04, 0.04] 0.501 0.85 [ 0.71, 1.00] 0.974 0.84 [0.68, 1.02] 0.957
Daily persuasion utilized (partner’s view) 1.03 [ 0.98, 1.08] 0.873 1.02 [ 0.98, 1.05] 0.838 0.02 [-0.03, 0.06] 0.771 1.02 [ 0.83, 1.23] 0.590 1.13 [0.86, 1.55] 0.809
Daily pressure experienced 0.91* [ 0.82, 1.00] 0.976 0.95 [ 0.89, 1.01] 0.942 -0.03 [-0.14, 0.07] 0.718 1.84** [ 1.16, 2.64] 0.995 1.94* [1.05, 4.19] 0.980
Daily pressure utilized (partner’s view) 0.95 [ 0.87, 1.03] 0.881 0.98 [ 0.92, 1.05] 0.691 -0.03 [-0.15, 0.08] 0.696 1.25 [ 0.74, 2.06] 0.828 1.41 [0.59, 4.02] 0.803
Daily pushing experienced 0.98 [ 0.92, 1.04] 0.711 1.01 [ 0.96, 1.06] 0.708 0.00 [-0.06, 0.06] 0.551 1.24 [ 0.99, 1.57] 0.970 1.37* [1.06, 1.85] 0.992
Daily pushing utilized (partner’s view) 0.96 [ 0.90, 1.01] 0.929 1.00 [ 0.96, 1.04] 0.546 0.07 [ 0.00, 0.13] 0.972 0.96 [ 0.73, 1.25] 0.623 0.93 [0.63, 1.36] 0.646
Own actionplan 1.36*** [ 1.23, 1.48] 1.000 1.07** [ 1.02, 1.13] 0.998 0.12** [ 0.04, 0.20] 0.997 0.83 [ 0.47, 1.47] 0.731 0.83 [0.44, 1.59] 0.714
Partner actionplan 1.09* [ 1.01, 1.19] 0.982 1.05* [ 1.00, 1.11] 0.982 -0.02 [-0.10, 0.05] 0.704 0.86 [ 0.52, 1.44] 0.727 0.83 [0.47, 1.48] 0.732
Day 0.95 [ 0.80, 1.12] 0.734 0.94 [ 0.85, 1.03] 0.906 0.24*** [ 0.09, 0.39] 1.000 1.65 [ 0.65, 3.97] 0.861 2.10 [0.77, 5.99] 0.914
Daily weartime NA NA NA 1.00*** [ 1.00, 1.00] 1.000 NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Is a Weekend 1.20*** [ 1.12, 1.29] 1.000 1.07** [ 1.02, 1.12] 0.998 0.15*** [ 0.08, 0.22] 1.000 0.64* [ 0.43, 0.96] 0.984 0.63 [0.36, 1.04] 0.965
JITAI received 0.94 [ 0.85, 1.04] 0.898 0.93* [ 0.88, 0.99] 0.992 -0.10* [-0.19, -0.01] 0.983 1.28 [ 0.76, 2.19] 0.828 1.42 [0.75, 2.66] 0.865
Days post skilled support intervention 1.06 [ 0.94, 1.20] 0.841 1.05 [ 0.98, 1.13] 0.916 0.04 [-0.07, 0.15] 0.772 0.81 [ 0.42, 1.53] 0.729 0.71 [0.33, 1.45] 0.816
Conditional Between-Person Effects
Mean persuasion experienced 1.07 [ 0.80, 1.43] 0.673 1.10 [ 0.83, 1.48] 0.750 0.36 [-0.15, 0.90] 0.909 0.96 [ 0.38, 2.38] 0.529 1.71 [0.54, 5.95] 0.822
Mean persuasion utilized (partner’s view) 1.02 [ 0.76, 1.37] 0.560 0.98 [ 0.72, 1.32] 0.569 0.25 [-0.29, 0.78] 0.819 1.26 [ 0.43, 3.62] 0.667 1.71 [0.50, 6.84] 0.804
Mean pressure experienced 1.15 [ 0.80, 1.65] 0.788 0.99 [ 0.74, 1.33] 0.517 -0.27 [-0.80, 0.26] 0.837 3.62** [ 1.37, 9.97] 0.995 18.90** [2.46, 178.70] 0.999
Mean pressure utilized (partner’s view) 0.93 [ 0.66, 1.32] 0.658 0.99 [ 0.74, 1.32] 0.529 -0.27 [-0.80, 0.25] 0.849 1.24 [ 0.42, 3.63] 0.665 2.55 [0.28, 22.04] 0.811
Mean pushing experienced 1.14 [ 0.72, 1.77] 0.711 0.95 [ 0.62, 1.46] 0.595 0.13 [-0.60, 0.88] 0.630 1.56 [ 0.43, 6.64] 0.743 1.07 [0.15, 7.73] 0.526
Mean pushing utilized (partner’s view) 1.19 [ 0.75, 1.86] 0.757 1.21 [ 0.80, 1.86] 0.809 0.29 [-0.46, 1.03] 0.775 0.10** [ 0.02, 0.57] 0.995 0.08* [0.01, 0.65] 0.990
Mean weartime NA NA NA 1.00 [ 1.00, 1.00] 0.924 NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Difference study group 2 1.08 [ 0.82, 1.40] 0.720 0.93 [ 0.72, 1.19] 0.728 -0.23 [-0.67, 0.22] 0.837 1.15 [ 0.52, 2.39] 0.635 1.20 [0.44, 3.34] 0.636
Difference study group 3 1.23 [ 0.95, 1.61] 0.941 1.03 [ 0.80, 1.33] 0.590 0.35 [-0.10, 0.80] 0.941 0.37* [ 0.16, 0.87] 0.989 0.37 [0.12, 1.15] 0.957
Hurdle Within-Person Effects
Hu Daily persuasion experienced 1.59*** [ 1.39, 1.84] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily persuasion utilized (partner’s view) 1.33*** [ 1.18, 1.53] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily pressure experienced 0.96 [ 0.69, 1.30] 0.603 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily pressure utilized (partner’s view) 1.52* [ 1.06, 2.41] 0.988 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily pushing experienced 0.93 [ 0.70, 1.29] 0.675 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily pushing utilized (partner’s view) 1.28* [ 1.02, 1.64] 0.986 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Own actionplan 10.36*** [ 8.45, 12.72] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Partner actionplan 1.24* [ 1.02, 1.50] 0.983 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Day 0.74 [ 0.51, 1.11] 0.922 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily weartime NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily support received NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Is a Weekend 1.56*** [ 1.29, 1.89] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu JITAI received 0.49*** [ 0.39, 0.63] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Days post skilled support intervention 1.28 [ 0.95, 1.74] 0.946 NA NA NA NA NA NA NA NA NA NA NA NA
Hurdle Between-Person Effects
Hu Mean persuasion experienced 1.44 [ 0.71, 3.02] 0.848 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean persuasion utilized (partner’s view) 1.36 [ 0.67, 2.83] 0.800 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean pressure experienced 0.38* [ 0.16, 0.86] 0.991 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean pressure utilized (partner’s view) 0.53 [ 0.23, 1.24] 0.927 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean pushing experienced 1.13 [ 0.38, 3.53] 0.591 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean pushing utilized (partner’s view) 1.89 [ 0.64, 6.01] 0.869 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean weartime NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean support received NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Difference study group 2 0.79 [ 0.42, 1.40] 0.784 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Difference study group 3 1.07 [ 0.58, 1.95] 0.581 NA NA NA NA NA NA NA NA NA NA NA NA
Random Effects
sd(Intercept) 0.29 [0.22, 0.40] NA 0.30 [0.23, 0.40] NA 0.56 [0.45, 0.74] NA 0.64 [0.23, 1.10] NA 1.07 [0.62, 1.69] NA
sd(Hurdle Intercept) 0.76 [0.57, 1.02] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Daily persuasion experienced) 0.12 [0.08, 0.17] NA 0.05 [0.02, 0.08] NA 0.04 [0.00, 0.10] NA 0.17 [0.01, 0.42] NA 0.22 [0.02, 0.53] NA
sd(Daily persuasion utilized (partner’s view)) 0.08 [0.05, 0.13] NA 0.05 [0.02, 0.09] NA 0.07 [0.01, 0.13] NA 0.22 [0.02, 0.53] NA 0.50 [0.15, 0.94] NA
sd(Daily pressure experienced) 0.06 [0.00, 0.21] NA 0.04 [0.00, 0.13] NA 0.07 [0.00, 0.25] NA 0.57 [0.07, 1.17] NA 1.05 [0.08, 2.38] NA
sd(Daily pressure utilized (partner’s view)) 0.05 [0.00, 0.17] NA 0.03 [0.00, 0.11] NA 0.08 [0.00, 0.28] NA 0.37 [0.02, 1.47] NA 0.77 [0.04, 2.72] NA
sd(Daily pushing experienced) 0.08 [0.01, 0.16] NA 0.07 [0.01, 0.15] NA 0.04 [0.00, 0.13] NA 0.22 [0.02, 0.56] NA 0.26 [0.02, 0.64] NA
sd(Daily pushing utilized (partner’s view)) 0.06 [0.01, 0.13] NA 0.03 [0.00, 0.09] NA 0.06 [0.00, 0.16] NA 0.15 [0.01, 0.61] NA 0.23 [0.01, 0.87] NA
sd(Hu Daily persuasion experienced) 0.20 [0.03, 0.39] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily persuasion utilized (partner’s view)) 0.19 [0.02, 0.38] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily pressure experienced) 0.19 [0.01, 0.67] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily pressure utilized (partner’s view)) 0.24 [0.01, 0.96] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily pushing experienced) 0.56 [0.31, 0.99] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily pushing utilized (partner’s view)) 0.24 [0.02, 0.56] NA NA NA NA NA NA NA NA NA NA NA NA NA
Additional Parameters
sigma 0.67 [0.65, 0.70] NA 0.57 [0.56, 0.59] NA 0.96 [0.94, 0.98] NA NA NA NA NA NA NA
report::report_system()

Analyses were conducted using the R Statistical language (version 4.4.1; R Core Team, 2024) on Windows 11 x64 (build 22635)

report::report_packages()
  • beepr (version 2.0; Bååth R, 2024)
  • R.methodsS3 (version 1.8.2; Bengtsson H, 2003)
  • R.oo (version 1.27.0; Bengtsson H, 2003)
  • R.utils (version 2.12.3; Bengtsson H, 2023)
  • brms (version 2.22.0; Bürkner P, 2017)
  • digest (version 0.6.37; Eddelbuettel D, 2024)
  • Rcpp (version 1.0.13.1; Eddelbuettel D et al., 2024)
  • bayesplot (version 1.11.1; Gabry J, Mahr T, 2024)
  • lubridate (version 1.9.3; Grolemund G, Wickham H, 2011)
  • DHARMa (version 0.4.7; Hartig F, 2024)
  • wbCorr (version 0.1.22; Küng P, 2023)
  • see (version 0.9.0; Lüdecke D et al., 2021)
  • tibble (version 3.2.1; Müller K, Wickham H, 2023)
  • R (version 4.4.1; R Core Team, 2024)
  • openxlsx (version 4.2.7.1; Schauberger P, Walker A, 2024)
  • ggplot2 (version 3.5.1; Wickham H, 2016)
  • forcats (version 1.0.0; Wickham H, 2023)
  • stringr (version 1.5.1; Wickham H, 2023)
  • rvest (version 1.0.4; Wickham H, 2024)
  • tidyverse (version 2.0.0; Wickham H et al., 2019)
  • readxl (version 1.4.3; Wickham H, Bryan J, 2023)
  • dplyr (version 1.1.4; Wickham H et al., 2023)
  • purrr (version 1.0.2; Wickham H, Henry L, 2023)
  • readr (version 2.1.5; Wickham H et al., 2024)
  • xml2 (version 1.3.6; Wickham H et al., 2023)
  • tidyr (version 1.3.1; Wickham H et al., 2024)
  • knitr (version 1.49; Xie Y, 2024)
  • kableExtra (version 1.4.0; Zhu H, 2024)
report::cite_packages()